#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=5e4+5;
string s,t;
int n,m,f[N][1005],ans=1e18;
int net[1005][26],kmp[1005];
signed main(){
	freopen("neck.in","r",stdin);
	freopen("neck.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);
	cin>>s>>t;
	n=s.size(),m=t.size();
	s=' '+s,t=' '+t;
	int j=0;
	for(int i=2;i<=m;i++) {
		while(j&&t[j+1]!=t[i]) j=kmp[j];
		if(t[j+1]==t[i]) ++j;
		kmp[i]=j;
	}
	for(int i=0;i<=m;i++) {
		int k=i;
		for(j=0;j<26;j++)
			net[i][j]=net[kmp[i]][j];
		if(i==m) break ;
		net[i][t[i+1]-'a']=i+1;
	}
	memset(f,0x7f,sizeof f);
	f[0][0]=0; 
	for(int i=0;i<n;i++) {
		for(j=0;j<m;j++) {
			f[i+1][net[j][s[i+1]-'a']]=min(f[i+1][net[j][s[i+1]-'a']],f[i][j]);
			f[i+1][j]=min(f[i+1][j],f[i][j]+1);
		}
	}
	for(int i=0;i<m;i++) ans=min(ans,f[n][i]);
	ans=n-ans;
	cout<<ans;
	return 0;
}

